package com.capitalone.dashboard.config; import com.capitalone.dashboard.mapper.CustomObjectMapper; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.SerializationFeature; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import java.util.List; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.capitalone.dashboard.rest") public class WebMVCConfig extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable("api"); } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { MappingJackson2HttpMessageConverter jackson = new MappingJackson2HttpMessageConverter(); jackson.setObjectMapper(new CustomObjectMapper()); jackson.getObjectMapper() .disable(SerializationFeature.WRITE_NULL_MAP_VALUES) .enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING) .setSerializationInclusion(JsonInclude.Include.NON_NULL); converters.add(jackson); } }